﻿using System;

namespace OmniKits.Windows.Interop
{
    partial class User32
    {
        public const int WS_EX_ACCEPTFILES = 0x10;
        public const int WS_EX_APPWINDOW = 0x40000;
        public const int WS_EX_CLIENTEDGE = 0x200;
        public const int WS_EX_COMPOSITED = 0x2000000;
        public const int WS_EX_CONTEXTHELP = 0x400;
        public const int WS_EX_CONTROLPARENT = 0x10000;
        public const int WS_EX_DLGMODALFRAME = 1;
        public const int WS_EX_LAYERED = 0x80000;
        public const int WS_EX_LAYOUTRTL = 0x400000;
        public const int WS_EX_LEFT = 0;
        public const int WS_EX_LEFTSCROLLBAR = 0x4000;
        public const int WS_EX_LTRREADING = 0;
        public const int WS_EX_MDICHILD = 0x40;
        public const int WS_EX_NOACTIVATE = 0x8000000;
        public const int WS_EX_NOINHERITLAYOUT = 0x100000;
        public const int WS_EX_NOPARENTNOTIFY = 4;
        public const int WS_EX_RIGHT = 0x1000;
        public const int WS_EX_RIGHTSCROLLBAR = 0;
        public const int WS_EX_RTLREADING = 0x2000;
        public const int WS_EX_STATICEDGE = 0x20000;
        public const int WS_EX_TOOLWINDOW = 0x80;
        public const int WS_EX_TOPMOST = 8;
        public const int WS_EX_TRANSPARENT = 0x20;
        public const int WS_EX_WINDOWEDGE = 0x100;

        public const int WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE;
        public const int WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST;
    }
}

namespace OmniKits.Windows.Interop
{
    using static User32;

    [Flags]
    public enum WindowStylesEx
    {
        AcceptFiles = WS_EX_ACCEPTFILES,
        AppWindow = WS_EX_APPWINDOW,
        ClientEdge = WS_EX_CLIENTEDGE,
        Composited = WS_EX_COMPOSITED,
        ContextHelp = WS_EX_CONTEXTHELP,
        ControlParent = WS_EX_CONTROLPARENT,
        DialogModalFrame = WS_EX_DLGMODALFRAME,
        Layered = WS_EX_LAYERED,
        LayoutRtl = WS_EX_LAYOUTRTL,
        Left = WS_EX_LEFT,
        LeftScrollBar = WS_EX_LEFTSCROLLBAR,
        LtrReading = WS_EX_LTRREADING,
        MdiChild = WS_EX_MDICHILD,
        NoActivate = WS_EX_NOACTIVATE,
        NoInheritLayout = WS_EX_NOINHERITLAYOUT,
        NoParentNotify = WS_EX_NOPARENTNOTIFY,
        Right = WS_EX_RIGHT,
        RightScrollBar = WS_EX_RIGHTSCROLLBAR,
        RtlReading = WS_EX_RTLREADING,
        StaticEdge = WS_EX_STATICEDGE,
        ToolWindow = WS_EX_TOOLWINDOW,
        Topmost = WS_EX_TOPMOST,
        Transparent = WS_EX_TRANSPARENT,
        WindowEdge = WS_EX_WINDOWEDGE,

        OverlappedWindow = WindowEdge | ClientEdge,
        PaletteWindow = WindowEdge | ToolWindow | Topmost,
    }
}
